<?php
    class Result {
        private $score;
        private $count;
        private $offset;

        function Result( $score ) {
            $this->score = $score;
        }

        function getScore(        ) { return $this->score;   }
        function setScore( $score ) { $this->score = $score; }
        function getCount(        ) { return $this->count;   }
        function setCount( $count ) { $this->count = $count; }
        function getOffset(         ) { return $this->offset;    }
        function setOffset( $offset ) { $this->offset = $offset; }
    }

    class ArtistResult extends Result {
        private $artist;

        function ArtistResult( Artist $artist, $score ) {
            parent::Result($score);
            $this->artist = $artist;
        }

        function setArtist( Artist $artist ) {
            $this->artist = $artist;
        }

        function getArtist() {
            return $this->artist;
        }
    }

    class ReleaseResult extends Result {
        private $release;

        function ReleaseResult( Release $release, $score ) {
            parent::Result($score);
            $this->release = $release;
        }

        function setRelease( Release $release ) {
            $this->release = $release;
        }

        function getRelease() {
            return $this->release;
        }
    }

    class TrackResult extends Result {
        private $track;

        function TrackResult( Track $track, $score ) {
            parent::Result($score);
            $this->track = $track;
        }

        function setTrack( Track $track ) {
            $this->track = $track;
        }

        function getTrack() {
            return $this->track;
        }
    }
?>
